Ces données proviennent de Break Free from Plastic et sont fournies par Sarah Sauve. Elles illustrent les différentes émissions de plastiques de certains pays , leurs sources et les actions apportées.
Sarah a rédigé un blogue sur son approche de ces données, qui comprend le nettoyage des données et une application Shiny . Elle a découvert les audits de marque de “Break Free From Plastic” en s’impliquant dans la “Social Justice Cooperative of Newfoundland” and “Labrador’s Zero Waste Action Team”. Elle a téléchargé les données brutes de son Google Drive, et a pu rédiger un court script de nettoyage et de jointure des données.
#install.packages("tidytuesdayR")
#install.packages("tidyverse")
#install.packages("dplyr")
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.4 v dplyr 1.0.7
## v tidyr 1.1.3 v stringr 1.4.0
## v readr 2.0.1 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(tidytuesdayR)
library(kableExtra)
##
## Attachement du package : 'kableExtra'
## L'objet suivant est masqué depuis 'package:dplyr':
##
## group_rows
plastics <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-01-26/plastics.csv')
## Rows: 13380 Columns: 14
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (2): country, parent_company
## dbl (12): year, empty, hdpe, ldpe, o, pet, pp, ps, pvc, grand_total, num_eve...
##
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
library(fs)
files_2020 <- fs::dir_ls(“2020 BFFP National Data Results”) %>% str_subset(“csv”)
files_2019 <- fs::dir_ls(“2019 Brand Audit Appendix _ Results by Country/Countries”) %>% str_subset(“csv”)
data_2020 <- files_2020 %>% map_dfr(read_csv, col_types = cols( Country = col_character(), Parent_company = col_character(), Empty = col_double(), HDPE = col_double(), LDPE = col_double(), O = col_double(), PET = col_double(), PP = col_double(), PS = col_double(), PVC = col_double(), Grand_Total = col_character(), num_events = col_double(), volunteers = col_double() )) %>% mutate(year = 2020, .after = Country) %>% mutate(Grand_Total = parse_number(Grand_Total)) %>% janitor::clean_names()
data_2019 <- files_2019 %>% set_names(str_replace(., “./[.].”, “\1”)) %>% map_dfr(read_csv, .id = “country”, col_types = cols( Country = col_character(), Parent_company = col_character(), Empty = col_double(), HDPE = col_double(), LDPE = col_double(), O = col_double(), PET = col_double(), PP = col_double(), PS = col_double(), PVC = col_double(), Grand_Total = col_double(), num_events = col_double(), volunteers = col_double() )) %>% select(country, everything()) %>% mutate(year = 2019, .after = country) %>% janitor::clean_names() %>% mutate(pp = if_else(is.na(pp_2), pp, pp_2 + pp), ps = if_else(is.na(ps_2), ps, ps + ps_2)) %>% rename(parent_company = parent_co_final, num_events = number_of_events, volunteers= number_of_volunteers) %>% select(-ps_2, -pp_2)
combo_data <- bind_rows(data_2019, data_2020)
combo_data %>% write_csv(“2021/2021-01-26/plastics.csv”)
plastics <- plastics %>%
rename( Pays = country ,Année = year, Source_plastic = parent_company , Cat_vide= empty, Cat_autre= o ,Polyester= pet , Polypropylene = pp ,Polystyrene = ps , Nombre_even = num_events , Volontaires = volunteers )
plastique <- na.omit(plastics)
Présence de plusieurs variables manquantes. Usage de la fonction de “na.omit”.
Nous passons de 13380 à 6826 observations
summary(plastique)
## Pays Année Source_plastic Cat_vide
## Length:6826 Min. :2019 Length:6826 Min. : 0.0000
## Class :character 1st Qu.:2019 Class :character 1st Qu.: 0.0000
## Mode :character Median :2020 Mode :character Median : 0.0000
## Mean :2020 Mean : 0.6109
## 3rd Qu.:2020 3rd Qu.: 0.0000
## Max. :2020 Max. :2208.0000
## hdpe ldpe Cat_autre Polyester
## Min. : 0.000 Min. : 0.00 Min. : 0.0 Min. : 0.00
## 1st Qu.: 0.000 1st Qu.: 0.00 1st Qu.: 0.0 1st Qu.: 0.00
## Median : 0.000 Median : 0.00 Median : 0.0 Median : 0.00
## Mean : 4.147 Mean : 13.09 Mean : 36.4 Mean : 26.43
## 3rd Qu.: 0.000 3rd Qu.: 0.00 3rd Qu.: 2.0 3rd Qu.: 1.00
## Max. :3728.000 Max. :11700.00 Max. :28055.0 Max. :36226.00
## Polypropylene Polystyrene pvc grand_total
## Min. : 0.00 Min. : 0.000 Min. : 0.0000 Min. : 0.00
## 1st Qu.: 0.00 1st Qu.: 0.000 1st Qu.: 0.0000 1st Qu.: 1.00
## Median : 0.00 Median : 0.000 Median : 0.0000 Median : 2.00
## Mean : 10.19 Mean : 2.197 Mean : 0.3857 Mean : 93.45
## 3rd Qu.: 0.00 3rd Qu.: 0.000 3rd Qu.: 0.0000 3rd Qu.: 8.00
## Max. :6046.00 Max. :1390.000 Max. :622.0000 Max. :80570.00
## Nombre_even Volontaires
## Min. : 1.00 Min. : 3
## 1st Qu.: 4.00 1st Qu.: 190
## Median : 17.00 Median : 400
## Mean : 24.11 Mean :1477
## 3rd Qu.: 32.00 3rd Qu.:2099
## Max. :134.00 Max. :6850
names(plastique)
## [1] "Pays" "Année" "Source_plastic" "Cat_vide"
## [5] "hdpe" "ldpe" "Cat_autre" "Polyester"
## [9] "Polypropylene" "Polystyrene" "pvc" "grand_total"
## [13] "Nombre_even" "Volontaires"
dim(plastique)
## [1] 6826 14
Lancement de la library “ggplot2”
library(ggplot2)
plastique %>%
group_by(Pays) %>%
ggplot()+
aes(x= hdpe, y=Pays)+
geom_bar(stat='identity' , fill="red")
=>Le nigéria a pollué le plus en hdpe
plastique %>%
group_by(Pays) %>%
ggplot()+
aes(x= ldpe, y=Pays)+
geom_bar(stat='identity',fill="orange")
=> Le nigéria a pollué le plus en ldpe
plastique %>%
group_by(Pays) %>%
ggplot()+
aes(x= Polyester , y=Pays)+
geom_bar(stat='identity', fill="purple")
=> Le nigéria a pollué le plus en Polyester
plastique %>%
group_by(Pays) %>%
ggplot()+
aes(x= Polypropylene , y=Pays)+
geom_bar(stat='identity', fill= "dark green")
=> Les philippines ont polué le plus en Polypropylène
On peut aussi mettre comme filler la variable “Année” . De ce fait nous pourrons repondre à des questions tels ques :
plastique %>%
group_by(Pays) %>%
ggplot()+
aes(x= Polystyrene , y=Pays)+
geom_bar(stat='identity',aes(fill= Année) )
on remarque que l’indonésie qui est au top du classement des pollueurs de polystyrène à beaucoup plus poluer en 2019 qu’en 2020.
plastique %>%
group_by(Pays) %>%
ggplot()+
aes(x= pvc , y=Pays)+
geom_bar(stat='identity',aes(fill= Année))
plastique %>%
filter(Année=="2019") %>%
group_by(Pays) %>%
ggplot()+
aes(x= grand_total, y=Pays)+
geom_bar(stat='identity',aes(fill= Année))+labs(title = "Répartition de la pollution de plastique en 2019 ", x="Totale de plastique pollué")
Le nigéria est le pays qui a le plus polluer en plastique en 2019
plastique %>%
filter(Année=="2020") %>%
group_by(Pays) %>%
ggplot()+
aes(x= grand_total, y=Pays)+
geom_bar(stat='identity', aes(fill= Année))+labs(title = "Répartition de la pollution de plastique en 2020 ", x="Totale de plastique pollué")
Le nigéria est le pays qui a le plus polluer en plastique en 2020
Ces deux questions précedentes nous permettent de répondre aussi à la question “quelle est l’année avec le plus de pollution en plastique ?”
A l’aide des plots , on peut direct nous référencer à l’échelle pour conclure qu’en 2019 , la pollution est monter d’un cran.
NBP<- plastique %>%
as_tibble() %>%
count(Pays,Année,Volontaires, Nombre_even)
kable(NBP)
| Pays | Année | Volontaires | Nombre_even | n |
|---|---|---|---|---|
| Argentina | 2019 | 243 | 4 | 275 |
| Argentina | 2020 | 9 | 24 | 226 |
| Armenia | 2020 | 6 | 2 | 2 |
| Australia | 2020 | 190 | 9 | 69 |
| Bangladesh | 2020 | 127 | 1 | 142 |
| Benin | 2020 | 458 | 2 | 2 |
| Brazil | 2020 | 78 | 4 | 22 |
| Bulgaria | 2020 | 50 | 7 | 15 |
| Burkina Faso | 2020 | 163 | 1 | 15 |
| Canada | 2020 | 13 | 3 | 43 |
| Chile | 2020 | 13 | 3 | 121 |
| China | 2020 | 2175 | 1 | 216 |
| Colombia | 2020 | 274 | 10 | 25 |
| Denmark | 2020 | 121 | 12 | 182 |
| Ecuador | 2020 | 22 | 4 | 11 |
| El Salvador | 2020 | 10 | 1 | 5 |
| France | 2020 | 15 | 3 | 41 |
| Germany | 2020 | 24 | 1 | 19 |
| Ghana | 2020 | 310 | 2 | 26 |
| Greece | 2020 | 73 | 2 | 8 |
| Honduras | 2020 | 12 | 1 | 2 |
| India | 2019 | 88 | 4 | 209 |
| India | 2020 | 353 | 56 | 348 |
| Indonesia | 2019 | 6850 | 32 | 636 |
| Indonesia | 2020 | 392 | 50 | 294 |
| Ireland | 2020 | 7 | 4 | 20 |
| Italy | 2020 | 154 | 3 | 16 |
| Japan | 2020 | 3 | 1 | 5 |
| Kenya | 2020 | 608 | 3 | 38 |
| Kuwait | 2020 | 3 | 1 | 19 |
| Latvia | 2020 | 5 | 1 | 71 |
| Lithuania | 2020 | 15 | 1 | 19 |
| Malaysia | 2020 | 370 | 35 | 207 |
| Mexico | 2020 | 83 | 32 | 59 |
| Montenegro | 2020 | 416 | 1 | 15 |
| Netherlands | 2020 | 5 | 1 | 11 |
| Nigeria | 2020 | 2099 | 18 | 335 |
| NIGERIA | 2019 | 1648 | 14 | 354 |
| Peru | 2020 | 45 | 2 | 23 |
| Philippines | 2019 | 3751 | 20 | 711 |
| Philippines | 2020 | 915 | 17 | 120 |
| Portugal | 2020 | 65 | 2 | 32 |
| Romania | 2020 | 7 | 1 | 4 |
| Serbia | 2020 | 13 | 1 | 9 |
| Singapore | 2020 | 4 | 1 | 8 |
| Slovenia | 2020 | 70 | 1 | 62 |
| South Africa | 2020 | 20 | 1 | 6 |
| Spain | 2020 | 284 | 11 | 21 |
| Sri Lanka | 2020 | 40 | 1 | 1 |
| Switzerland | 2020 | 540 | 18 | 97 |
| Tanzania | 2020 | 2719 | 15 | 21 |
| Thailand | 2020 | 337 | 9 | 59 |
| Togo | 2020 | 92 | 1 | 5 |
| Tunisia | 2020 | 49 | 2 | 9 |
| Ukraine | 2020 | 238 | 17 | 260 |
| United Arab Emirates | 2020 | 12 | 1 | 1 |
| United Kingdom of Great Britain & Northern Ireland | 2020 | 90 | 8 | 75 |
| United States of America | 2020 | 511 | 134 | 373 |
| Vietnam | 2019 | 400 | 4 | 678 |
| Vietnam | 2020 | 27 | 6 | 128 |
NBP %>%
group_by(Pays) %>%
ggplot()+
aes(x=Pays , y=Volontaires)+
geom_bar(stat='identity', fill="green")+coord_flip()+
labs(title = "Répartition du nombre de volontaires par pays ")
NBP %>%
group_by(Pays) %>%
ggplot()+
aes(x=Pays , y=Nombre_even)+
geom_bar(stat='identity', fill="dark green")+coord_flip()+
labs(title = "Répartition du nombre d'évènements par pays ")
Création de la sous-table “NBP” contenant les variables “Pays”, “Année”, “Volontaires”et “Nombre_even” dans le but de simplifier la visualisation des réprésentations graphiques.
On peut donc répurérer facilement les résultats.
Les deux graphiques précédents permettre de repondre aux questions :
NBS<- plastique %>%
as_tibble() %>%
count(Pays,Source_plastic) %>%
group_by(Pays)
NBS
## # A tibble: 6,668 x 3
## # Groups: Pays [55]
## Pays Source_plastic n
## <chr> <chr> <int>
## 1 Argentina 9 De Oro 1
## 2 Argentina Aceitera Martinez S.A 1
## 3 Argentina Acivag 1
## 4 Argentina Adidas 1
## 5 Argentina AGD 1
## 6 Argentina Agua Bes 1
## 7 Argentina Agua De La Costa 1
## 8 Argentina Agua de las misiones 1
## 9 Argentina Agua De Las Misiones 1
## 10 Argentina Ala 1
## # ... with 6,658 more rows
Cette question nous fait réalisée que la variable “Source_plastic” ne peut être d’une grande utilité dans le traitement de nos données au regard de son unicité. La sous-table créée servira à repondre à des questions comme “le nombre de source de plastique d’un pays”.
NBP %>%
filter(Année == "2019")
## # A tibble: 6 x 5
## Pays Année Volontaires Nombre_even n
## <chr> <dbl> <dbl> <dbl> <int>
## 1 Argentina 2019 243 4 275
## 2 India 2019 88 4 209
## 3 Indonesia 2019 6850 32 636
## 4 NIGERIA 2019 1648 14 354
## 5 Philippines 2019 3751 20 711
## 6 Vietnam 2019 400 4 678
NBP %>%
filter(Année == "2020")
## # A tibble: 54 x 5
## Pays Année Volontaires Nombre_even n
## <chr> <dbl> <dbl> <dbl> <int>
## 1 Argentina 2020 9 24 226
## 2 Armenia 2020 6 2 2
## 3 Australia 2020 190 9 69
## 4 Bangladesh 2020 127 1 142
## 5 Benin 2020 458 2 2
## 6 Brazil 2020 78 4 22
## 7 Bulgaria 2020 50 7 15
## 8 Burkina Faso 2020 163 1 15
## 9 Canada 2020 13 3 43
## 10 Chile 2020 13 3 121
## # ... with 44 more rows
NBP %>%
filter(Pays=="Argentina" | Pays == "India" | Pays == "Indonesia" | Pays == "NIGERIA"| Pays == "Philippines" | Pays == "Vietnam")
## # A tibble: 11 x 5
## Pays Année Volontaires Nombre_even n
## <chr> <dbl> <dbl> <dbl> <int>
## 1 Argentina 2019 243 4 275
## 2 Argentina 2020 9 24 226
## 3 India 2019 88 4 209
## 4 India 2020 353 56 348
## 5 Indonesia 2019 6850 32 636
## 6 Indonesia 2020 392 50 294
## 7 NIGERIA 2019 1648 14 354
## 8 Philippines 2019 3751 20 711
## 9 Philippines 2020 915 17 120
## 10 Vietnam 2019 400 4 678
## 11 Vietnam 2020 27 6 128
il n’y a seulement qu’en Argentine, en Inde, en Indonésie, aux Philippines et au Vietnam que nous avons des données sur les volontaires en 2019 ET en 2020. Etudions l’évolution du nombre de volontaires selon ces 5 pays.
Raise1920 <- NBP %>%
group_by(Année) %>%
filter(Pays=="Argentina" | Pays == "India" | Pays == "Indonesia" | Pays == "Philippines" | Pays == "Vietnam") %>%
select(Pays, Année, Volontaires)
Raise1920 %>%
ggplot()+
aes(x=Année, y=Volontaires, fill=Pays)+
geom_col()+
labs(title = "Distributions des volontaires sur 2019 et 2020")
Il n’y a seulement qu’en Inde que le nombre de volontaires a augmenté.
plastique %>%
group_by(Année) %>%
filter(Pays=="Argentina" | Pays == "India" | Pays == "Indonesia" | Pays == "Philippines" | Pays == "Vietnam") %>%
select(Pays, Année, grand_total) %>%
ggplot()+
(aes(x=Année, y = grand_total, fill=Pays))+
geom_col()+
labs(title = "Evolution de la pollution", x = "Année", y="degré de pollution")
La pollution du Vietnam, des Philippines, de l’Indonésie et de l’Argentine à diminuée, tandis que celle de l’Inde à augmenté.
Raise1920 %>%
ggplot()+
aes(x=Pays,y=Volontaires)+
geom_boxplot(varwidth=T, colour="purple",fill="yellow")+
labs(title = "Distribution des pays sur le nombre de volontaires")
Raise1920 %>%
group_by(Pays) %>%
ggplot()+
aes(x= Volontaires)+
geom_density(aes(fill=Pays), alpha=0.8) +
labs(title = "Distribution des volontaires")
Raise1920 %>%
ggplot( ) +
aes(x=Pays, y = Volontaires, colour=Année)+
geom_point() +
geom_smooth(method="lm", se=F)
## `geom_smooth()` using formula 'y ~ x'
On remarque que points sont biens distincts et donc par de corrélation entre les variables “Pays” et “Volontaires”.
8. Comment les evenements ont évolués entre 2019 et 2020 pour ces 5 pays?
Le nombre d’évènements de l’Argentine et de l’Inde ont fortement augementé, celui du Vietnam légèrement, tandis que ceux de l’indonésie et des Philippines ont legèrement diminué.